! function(t, n) {
	"object" == typeof exports ? module.exports = exports = n() : "function" == typeof define && define.amd ? define([], n) : t.CryptoJS = n()
}(this, function() {
	var t = t || function(t, n) {
		var i = Object.create || function() {
				function t() {}
				return function(n) {
					var i;
					return t.prototype = n, i = new t, t.prototype = null, i
				}
			}(),
			e = {},
			r = e.lib = {},
			o = r.Base = function() {
				return {
					extend: function(t) {
						var n = i(this);
						return t && n.mixIn(t), n.hasOwnProperty("init") && this.init !== n.init || (n.init = function() {
							n.$super.init.apply(this, arguments)
						}), n.init.prototype = n, n.$super = this, n
					},
					create: function() {
						var t = this.extend();
						return t.init.apply(t, arguments), t
					},
					init: function() {},
					mixIn: function(t) {
						for(var n in t) t.hasOwnProperty(n) && (this[n] = t[n]);
						t.hasOwnProperty("toString") && (this.toString = t.toString)
					},
					clone: function() {
						return this.init.prototype.extend(this)
					}
				}
			}(),
			s = r.WordArray = o.extend({
				init: function(t, i) {
					t = this.words = t || [], i != n ? this.sigBytes = i : this.sigBytes = 4 * t.length
				},
				toString: function(t) {
					return(t || c).stringify(this)
				},
				concat: function(t) {
					var n = this.words,
						i = t.words,
						e = this.sigBytes,
						r = t.sigBytes;
					if(this.clamp(), e % 4)
						for(var o = 0; o < r; o++) {
							var s = i[o >>> 2] >>> 24 - o % 4 * 8 & 255;
							n[e + o >>> 2] |= s << 24 - (e + o) % 4 * 8
						} else
							for(var o = 0; o < r; o += 4) n[e + o >>> 2] = i[o >>> 2];
					return this.sigBytes += r, this
				},
				clamp: function() {
					var n = this.words,
						i = this.sigBytes;
					n[i >>> 2] &= 4294967295 << 32 - i % 4 * 8, n.length = t.ceil(i / 4)
				},
				clone: function() {
					var t = o.clone.call(this);
					return t.words = this.words.slice(0), t
				},
				random: function(n) {
					for(var i, e = [], r = function(n) {
							var n = n,
								i = 987654321,
								e = 4294967295;
							return function() {
								i = 36969 * (65535 & i) + (i >> 16) & e, n = 18e3 * (65535 & n) + (n >> 16) & e;
								var r = (i << 16) + n & e;
								return r /= 4294967296, r += .5, r * (t.random() > .5 ? 1 : -1)
							}
						}, o = 0; o < n; o += 4) {
						var a = r(4294967296 * (i || t.random()));
						i = 987654071 * a(), e.push(4294967296 * a() | 0)
					}
					return new s.init(e, n)
				}
			}),
			a = e.enc = {},
			c = a.Hex = {
				stringify: function(t) {
					for(var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) {
						var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;
						e.push((o >>> 4).toString(16)), e.push((15 & o).toString(16))
					}
					return e.join("")
				},
				parse: function(t) {
					for(var n = t.length, i = [], e = 0; e < n; e += 2) i[e >>> 3] |= parseInt(t.substr(e, 2), 16) << 24 - e % 8 * 4;
					return new s.init(i, n / 2)
				}
			},
			u = a.Latin1 = {
				stringify: function(t) {
					for(var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) {
						var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;
						e.push(String.fromCharCode(o))
					}
					return e.join("")
				},
				parse: function(t) {
					for(var n = t.length, i = [], e = 0; e < n; e++) i[e >>> 2] |= (255 & t.charCodeAt(e)) << 24 - e % 4 * 8;
					return new s.init(i, n)
				}
			},
			f = a.Utf8 = {
				stringify: function(t) {
					try {
						return decodeURIComponent(escape(u.stringify(t)))
					} catch(t) {
						throw new Error("Malformed UTF-8 data")
					}
				},
				parse: function(t) {
					return u.parse(unescape(encodeURIComponent(t)))
				}
			},
			h = r.BufferedBlockAlgorithm = o.extend({
				reset: function() {
					this._data = new s.init, this._nDataBytes = 0
				},
				_append: function(t) {
					"string" == typeof t && (t = f.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes
				},
				_process: function(n) {
					var i = this._data,
						e = i.words,
						r = i.sigBytes,
						o = this.blockSize,
						a = 4 * o,
						c = r / a;
					c = n ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0);
					var u = c * o,
						f = t.min(4 * u, r);
					if(u) {
						for(var h = 0; h < u; h += o) this._doProcessBlock(e, h);
						var p = e.splice(0, u);
						i.sigBytes -= f
					}
					return new s.init(p, f)
				},
				clone: function() {
					var t = o.clone.call(this);
					return t._data = this._data.clone(), t
				},
				_minBufferSize: 0
			}),
			p = (r.Hasher = h.extend({
				cfg: o.extend(),
				init: function(t) {
					this.cfg = this.cfg.extend(t), this.reset()
				},
				reset: function() {
					h.reset.call(this), this._doReset()
				},
				update: function(t) {
					return this._append(t), this._process(), this
				},
				finalize: function(t) {
					t && this._append(t);
					var n = this._doFinalize();
					return n
				},
				blockSize: 16,
				_createHelper: function(t) {
					return function(n, i) {
						return new t.init(i).finalize(n)
					}
				},
				_createHmacHelper: function(t) {
					return function(n, i) {
						return new p.HMAC.init(t, i).finalize(n)
					}
				}
			}), e.algo = {});
		return e
	}(Math);
	return t
});
//# sourceMappingURL=core.min.js.map
! function(e, t, i) {
	"object" == typeof exports ? module.exports = exports = t(require("./core.min"), require("./sha1.min"), require("./hmac.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./sha1.min", "./hmac.min"], t) : t(e.CryptoJS)
}(this, function(e) {
	return function() {
		var t = e,
			i = t.lib,
			r = i.Base,
			n = i.WordArray,
			o = t.algo,
			a = o.MD5,
			c = o.EvpKDF = r.extend({
				cfg: r.extend({
					keySize: 4,
					hasher: a,
					iterations: 1
				}),
				init: function(e) {
					this.cfg = this.cfg.extend(e)
				},
				compute: function(e, t) {
					for(var i = this.cfg, r = i.hasher.create(), o = n.create(), a = o.words, c = i.keySize, f = i.iterations; a.length < c;) {
						s && r.update(s);
						var s = r.update(e).finalize(t);
						r.reset();
						for(var u = 1; u < f; u++) s = r.finalize(s), r.reset();
						o.concat(s)
					}
					return o.sigBytes = 4 * c, o
				}
			});
		t.EvpKDF = function(e, t, i) {
			return c.create(i).compute(e, t)
		}
	}(), e.EvpKDF
});
//# sourceMappingURL=evpkdf.min.js.map
! function(r, e) {
	"object" == typeof exports ? module.exports = exports = e(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], e) : e(r.CryptoJS)
}(this, function(r) {
	return function() {
		function e(r, e, t) {
			for(var n = [], i = 0, o = 0; o < e; o++)
				if(o % 4) {
					var f = t[r.charCodeAt(o - 1)] << o % 4 * 2,
						c = t[r.charCodeAt(o)] >>> 6 - o % 4 * 2;
					n[i >>> 2] |= (f | c) << 24 - i % 4 * 8, i++
				}
			return a.create(n, i)
		}
		var t = r,
			n = t.lib,
			a = n.WordArray,
			i = t.enc;
		i.Base64 = {
			stringify: function(r) {
				var e = r.words,
					t = r.sigBytes,
					n = this._map;
				r.clamp();
				for(var a = [], i = 0; i < t; i += 3)
					for(var o = e[i >>> 2] >>> 24 - i % 4 * 8 & 255, f = e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255, c = e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, s = o << 16 | f << 8 | c, h = 0; h < 4 && i + .75 * h < t; h++) a.push(n.charAt(s >>> 6 * (3 - h) & 63));
				var p = n.charAt(64);
				if(p)
					for(; a.length % 4;) a.push(p);
				return a.join("")
			},
			parse: function(r) {
				var t = r.length,
					n = this._map,
					a = this._reverseMap;
				if(!a) {
					a = this._reverseMap = [];
					for(var i = 0; i < n.length; i++) a[n.charCodeAt(i)] = i
				}
				var o = n.charAt(64);
				if(o) {
					var f = r.indexOf(o);
					f !== -1 && (t = f)
				}
				return e(r, t, a)
			},
			_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
		}
	}(), r.enc.Base64
});
//# sourceMappingURL=enc-base64.min.js.map
! function(e, t, r) {
	"object" == typeof exports ? module.exports = exports = t(require("./core.min"), require("./evpkdf.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./evpkdf.min"], t) : t(e.CryptoJS)
}(this, function(e) {
	e.lib.Cipher || function(t) {
		var r = e,
			i = r.lib,
			n = i.Base,
			c = i.WordArray,
			o = i.BufferedBlockAlgorithm,
			s = r.enc,
			a = (s.Utf8, s.Base64),
			f = r.algo,
			p = f.EvpKDF,
			d = i.Cipher = o.extend({
				cfg: n.extend(),
				createEncryptor: function(e, t) {
					return this.create(this._ENC_XFORM_MODE, e, t)
				},
				createDecryptor: function(e, t) {
					return this.create(this._DEC_XFORM_MODE, e, t)
				},
				init: function(e, t, r) {
					this.cfg = this.cfg.extend(r), this._xformMode = e, this._key = t, this.reset()
				},
				reset: function() {
					o.reset.call(this), this._doReset()
				},
				process: function(e) {
					return this._append(e), this._process()
				},
				finalize: function(e) {
					e && this._append(e);
					var t = this._doFinalize();
					return t
				},
				keySize: 4,
				ivSize: 4,
				_ENC_XFORM_MODE: 1,
				_DEC_XFORM_MODE: 2,
				_createHelper: function() {
					function e(e) {
						return "string" == typeof e ? B : x
					}
					return function(t) {
						return {
							encrypt: function(r, i, n) {
								return e(i).encrypt(t, r, i, n)
							},
							decrypt: function(r, i, n) {
								return e(i).decrypt(t, r, i, n)
							}
						}
					}
				}()
			}),
			h = (i.StreamCipher = d.extend({
				_doFinalize: function() {
					var e = this._process(!0);
					return e
				},
				blockSize: 1
			}), r.mode = {}),
			u = i.BlockCipherMode = n.extend({
				createEncryptor: function(e, t) {
					return this.Encryptor.create(e, t)
				},
				createDecryptor: function(e, t) {
					return this.Decryptor.create(e, t)
				},
				init: function(e, t) {
					this._cipher = e, this._iv = t
				}
			}),
			l = h.CBC = function() {
				function e(e, r, i) {
					var n = this._iv;
					if(n) {
						var c = n;
						this._iv = t
					} else var c = this._prevBlock;
					for(var o = 0; o < i; o++) e[r + o] ^= c[o]
				}
				var r = u.extend();
				return r.Encryptor = r.extend({
					processBlock: function(t, r) {
						var i = this._cipher,
							n = i.blockSize;
						e.call(this, t, r, n), i.encryptBlock(t, r), this._prevBlock = t.slice(r, r + n)
					}
				}), r.Decryptor = r.extend({
					processBlock: function(t, r) {
						var i = this._cipher,
							n = i.blockSize,
							c = t.slice(r, r + n);
						i.decryptBlock(t, r), e.call(this, t, r, n), this._prevBlock = c
					}
				}), r
			}(),
			_ = r.pad = {},
			v = _.Pkcs7 = {
				pad: function(e, t) {
					for(var r = 4 * t, i = r - e.sigBytes % r, n = i << 24 | i << 16 | i << 8 | i, o = [], s = 0; s < i; s += 4) o.push(n);
					var a = c.create(o, i);
					e.concat(a)
				},
				unpad: function(e) {
					var t = 255 & e.words[e.sigBytes - 1 >>> 2];
					e.sigBytes -= t
				}
			},
			y = (i.BlockCipher = d.extend({
				cfg: d.cfg.extend({
					mode: l,
					padding: v
				}),
				reset: function() {
					d.reset.call(this);
					var e = this.cfg,
						t = e.iv,
						r = e.mode;
					if(this._xformMode == this._ENC_XFORM_MODE) var i = r.createEncryptor;
					else {
						var i = r.createDecryptor;
						this._minBufferSize = 1
					}
					this._mode && this._mode.__creator == i ? this._mode.init(this, t && t.words) : (this._mode = i.call(r, this, t && t.words), this._mode.__creator = i)
				},
				_doProcessBlock: function(e, t) {
					this._mode.processBlock(e, t)
				},
				_doFinalize: function() {
					var e = this.cfg.padding;
					if(this._xformMode == this._ENC_XFORM_MODE) {
						e.pad(this._data, this.blockSize);
						var t = this._process(!0)
					} else {
						var t = this._process(!0);
						e.unpad(t)
					}
					return t
				},
				blockSize: 4
			}), i.CipherParams = n.extend({
				init: function(e) {
					this.mixIn(e)
				},
				toString: function(e) {
					return(e || this.formatter).stringify(this)
				}
			})),
			m = r.format = {},
			k = m.OpenSSL = {
				stringify: function(e) {
					var t = e.ciphertext,
						r = e.salt;
					if(r) var i = c.create([1398893684, 1701076831]).concat(r).concat(t);
					else var i = t;
					return i.toString(a)
				},
				parse: function(e) {
					var t = a.parse(e),
						r = t.words;
					if(1398893684 == r[0] && 1701076831 == r[1]) {
						var i = c.create(r.slice(2, 4));
						r.splice(0, 4), t.sigBytes -= 16
					}
					return y.create({
						ciphertext: t,
						salt: i
					})
				}
			},
			x = i.SerializableCipher = n.extend({
				cfg: n.extend({
					format: k
				}),
				encrypt: function(e, t, r, i) {
					i = this.cfg.extend(i);
					var n = e.createEncryptor(r, i),
						c = n.finalize(t),
						o = n.cfg;
					return y.create({
						ciphertext: c,
						key: r,
						iv: o.iv,
						algorithm: e,
						mode: o.mode,
						padding: o.padding,
						blockSize: e.blockSize,
						formatter: i.format
					})
				},
				decrypt: function(e, t, r, i) {
					i = this.cfg.extend(i), t = this._parse(t, i.format);
					var n = e.createDecryptor(r, i).finalize(t.ciphertext);
					return n
				},
				_parse: function(e, t) {
					return "string" == typeof e ? t.parse(e, this) : e
				}
			}),
			g = r.kdf = {},
			S = g.OpenSSL = {
				execute: function(e, t, r, i) {
					i || (i = c.random(8));
					var n = p.create({
							keySize: t + r
						}).compute(e, i),
						o = c.create(n.words.slice(t), 4 * r);
					return n.sigBytes = 4 * t, y.create({
						key: n,
						iv: o,
						salt: i
					})
				}
			},
			B = i.PasswordBasedCipher = x.extend({
				cfg: x.cfg.extend({
					kdf: S
				}),
				encrypt: function(e, t, r, i) {
					i = this.cfg.extend(i);
					var n = i.kdf.execute(r, e.keySize, e.ivSize);
					i.iv = n.iv;
					var c = x.encrypt.call(this, e, t, n.key, i);
					return c.mixIn(n), c
				},
				decrypt: function(e, t, r, i) {
					i = this.cfg.extend(i), t = this._parse(t, i.format);
					var n = i.kdf.execute(r, e.keySize, e.ivSize, t.salt);
					i.iv = n.iv;
					var c = x.decrypt.call(this, e, t, n.key, i);
					return c
				}
			})
	}()
});
//# sourceMappingURL=cipher-core.min.js.map
! function(e, i) {
	"object" == typeof exports ? module.exports = exports = i(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], i) : i(e.CryptoJS)
}(this, function(e) {
	! function() {
		var i = e,
			t = i.lib,
			n = t.Base,
			s = i.enc,
			r = s.Utf8,
			o = i.algo;
		o.HMAC = n.extend({
			init: function(e, i) {
				e = this._hasher = new e.init, "string" == typeof i && (i = r.parse(i));
				var t = e.blockSize,
					n = 4 * t;
				i.sigBytes > n && (i = e.finalize(i)), i.clamp();
				for(var s = this._oKey = i.clone(), o = this._iKey = i.clone(), a = s.words, f = o.words, c = 0; c < t; c++) a[c] ^= 1549556828, f[c] ^= 909522486;
				s.sigBytes = o.sigBytes = n, this.reset()
			},
			reset: function() {
				var e = this._hasher;
				e.reset(), e.update(this._iKey)
			},
			update: function(e) {
				return this._hasher.update(e), this
			},
			finalize: function(e) {
				var i = this._hasher,
					t = i.finalize(e);
				i.reset();
				var n = i.finalize(this._oKey.clone().concat(t));
				return n
			}
		})
	}()
});
//# sourceMappingURL=hmac.min.js.map
! function(e, o, r) {
	"object" == typeof exports ? module.exports = exports = o(require("./core.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./cipher-core.min"], o) : o(e.CryptoJS)
}(this, function(e) {
	return e.mode.ECB = function() {
		var o = e.lib.BlockCipherMode.extend();
		return o.Encryptor = o.extend({
			processBlock: function(e, o) {
				this._cipher.encryptBlock(e, o)
			}
		}), o.Decryptor = o.extend({
			processBlock: function(e, o) {
				this._cipher.decryptBlock(e, o)
			}
		}), o
	}(), e.mode.ECB
});
//# sourceMappingURL=mode-ecb.min.js.map
! function(e, r, i) {
	"object" == typeof exports ? module.exports = exports = r(require("./core.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./cipher-core.min"], r) : r(e.CryptoJS)
}(this, function(e) {
	return e.pad.Pkcs7
});
//# sourceMappingURL=pad-pkcs7.min.js.map
! function(e, r, i) {
	"object" == typeof exports ? module.exports = exports = r(require("./core.min"), require("./enc-base64.min"), require("./md5.min"), require("./evpkdf.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./enc-base64.min", "./md5.min", "./evpkdf.min", "./cipher-core.min"], r) : r(e.CryptoJS)
}(this, function(e) {
	return function() {
		var r = e,
			i = r.lib,
			n = i.BlockCipher,
			o = r.algo,
			t = [],
			c = [],
			s = [],
			f = [],
			a = [],
			d = [],
			u = [],
			v = [],
			h = [],
			y = [];
		! function() {
			for(var e = [], r = 0; r < 256; r++) r < 128 ? e[r] = r << 1 : e[r] = r << 1 ^ 283;
			for(var i = 0, n = 0, r = 0; r < 256; r++) {
				var o = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;
				o = o >>> 8 ^ 255 & o ^ 99, t[i] = o, c[o] = i;
				var p = e[i],
					l = e[p],
					_ = e[l],
					k = 257 * e[o] ^ 16843008 * o;
				s[i] = k << 24 | k >>> 8, f[i] = k << 16 | k >>> 16, a[i] = k << 8 | k >>> 24, d[i] = k;
				var k = 16843009 * _ ^ 65537 * l ^ 257 * p ^ 16843008 * i;
				u[o] = k << 24 | k >>> 8, v[o] = k << 16 | k >>> 16, h[o] = k << 8 | k >>> 24, y[o] = k, i ? (i = p ^ e[e[e[_ ^ p]]], n ^= e[e[n]]) : i = n = 1
			}
		}();
		var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
			l = o.AES = n.extend({
				_doReset: function() {
					if(!this._nRounds || this._keyPriorReset !== this._key) {
						for(var e = this._keyPriorReset = this._key, r = e.words, i = e.sigBytes / 4, n = this._nRounds = i + 6, o = 4 * (n + 1), c = this._keySchedule = [], s = 0; s < o; s++)
							if(s < i) c[s] = r[s];
							else {
								var f = c[s - 1];
								s % i ? i > 6 && s % i == 4 && (f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f]) : (f = f << 8 | f >>> 24, f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f], f ^= p[s / i | 0] << 24), c[s] = c[s - i] ^ f
							}
						for(var a = this._invKeySchedule = [], d = 0; d < o; d++) {
							var s = o - d;
							if(d % 4) var f = c[s];
							else var f = c[s - 4];
							d < 4 || s <= 4 ? a[d] = f : a[d] = u[t[f >>> 24]] ^ v[t[f >>> 16 & 255]] ^ h[t[f >>> 8 & 255]] ^ y[t[255 & f]]
						}
					}
				},
				encryptBlock: function(e, r) {
					this._doCryptBlock(e, r, this._keySchedule, s, f, a, d, t)
				},
				decryptBlock: function(e, r) {
					var i = e[r + 1];
					e[r + 1] = e[r + 3], e[r + 3] = i, this._doCryptBlock(e, r, this._invKeySchedule, u, v, h, y, c);
					var i = e[r + 1];
					e[r + 1] = e[r + 3], e[r + 3] = i
				},
				_doCryptBlock: function(e, r, i, n, o, t, c, s) {
					for(var f = this._nRounds, a = e[r] ^ i[0], d = e[r + 1] ^ i[1], u = e[r + 2] ^ i[2], v = e[r + 3] ^ i[3], h = 4, y = 1; y < f; y++) {
						var p = n[a >>> 24] ^ o[d >>> 16 & 255] ^ t[u >>> 8 & 255] ^ c[255 & v] ^ i[h++],
							l = n[d >>> 24] ^ o[u >>> 16 & 255] ^ t[v >>> 8 & 255] ^ c[255 & a] ^ i[h++],
							_ = n[u >>> 24] ^ o[v >>> 16 & 255] ^ t[a >>> 8 & 255] ^ c[255 & d] ^ i[h++],
							k = n[v >>> 24] ^ o[a >>> 16 & 255] ^ t[d >>> 8 & 255] ^ c[255 & u] ^ i[h++];
						a = p, d = l, u = _, v = k
					}
					var p = (s[a >>> 24] << 24 | s[d >>> 16 & 255] << 16 | s[u >>> 8 & 255] << 8 | s[255 & v]) ^ i[h++],
						l = (s[d >>> 24] << 24 | s[u >>> 16 & 255] << 16 | s[v >>> 8 & 255] << 8 | s[255 & a]) ^ i[h++],
						_ = (s[u >>> 24] << 24 | s[v >>> 16 & 255] << 16 | s[a >>> 8 & 255] << 8 | s[255 & d]) ^ i[h++],
						k = (s[v >>> 24] << 24 | s[a >>> 16 & 255] << 16 | s[d >>> 8 & 255] << 8 | s[255 & u]) ^ i[h++];
					e[r] = p, e[r + 1] = l, e[r + 2] = _, e[r + 3] = k
				},
				keySize: 8
			});
		r.AES = n._createHelper(l)
	}(), e.AES
});
//# sourceMappingURL=aes.min.js.map
! function(e, n) {
	"object" == typeof exports ? module.exports = exports = n(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], n) : n(e.CryptoJS)
}(this, function(e) {
	return e.enc.Utf8
});
//# sourceMappingURL=enc-utf8.min.js.map
﻿
function myDebug(test) {
	function getQueryString(a) {
		var b = new RegExp("(^|&)" + a + "=([^&]*)(&|$)", "i"),
			c = window.location.search.substr(1).match(b);
		return null != c ? decodeURIComponent(c[2]) : ""
	}
	if(getQueryString("myDebug")) {
		var index = $(".myDebugHtml").length;
		var myDebugHtml =
			'<div class="myDebugHtml" style="z-index: 99999;border-top: 1px solid #fff;line-height: 32px;position: fixed;bottom: ' + (index * 33) + 'px;height: 32px;width: 100%;background: #03A9F4;left: 0;text-align: center;color: #fff; font-size: 16px;">' +
			'<p>' + test + '</p>' +
			'</div>';
		$("body").append(myDebugHtml);
	}
}
(function(t, i, s, e) {

	function browserRedirect() {
		var sUserAgent = navigator.userAgent.toLowerCase();
		var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
		var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
		var bIsMidp = sUserAgent.match(/midp/i) == "midp";
		var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
		var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
		var bIsAndroid = sUserAgent.match(/android/i) == "android";
		var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
		var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
		if(!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
			return "pc"
		} else {
			return "wap"
		}
	}
	var hasTouch = browserRedirect(),
		startEvent = hasTouch == "wap" ? 'touchstart' : 'mousedown',
		moveEvent = hasTouch == "wap" ? 'touchmove' : 'mousemove',
		endEvent = hasTouch == "wap" ? 'touchend' : 'mouseup',
		cancelEvent = hasTouch == "wap" ? 'touchcancel' : 'mouseup';
	var l = function(i, s) {
		this.ele = i;
		this.defaults = {
			isSuccess: 0,
			width: 300,
			height: 34,
			sliderBg: "#e8e8e8",
			color: "#666",
			fontSize: 12,
			bgColor: "#7ac23c",
			textMsg: "请按住滑块，拖动到指定位置",
			successMsg: "验证成功",
			successColor: "#fff",
			time: 160,
			errorMsg: "哎呀，出错了，再来一次",
			errorFontSize: 12,
			errorColor: "#ff8080",
			errorBgColor: "#e8e8e8",
			callback: function(t, d) {},
			success: function(data) {},
			error: function(r) {}
		};
		this.opts = t.extend({}, this.defaults, s);
		this.init()
	};
	l.prototype = {
		init: function() {
			this.mouseXY = "";
			this.result = false;
			this.sliderBtn_left = 0;
			this.maxLeft = this.opts.width - this.opts.height;
			this.render();
			this.removeEvent();
			this.eventBind();
		},
		render: function() {
			var t = '<div class="ui-slider-wrap">' + '<div class="ui-slider-text ui-slider-no-select add-img">' + this.opts.textMsg + "</div>" + '<div class="ui-slider-btn init ui-slider-no-select"></div>' + '<div class="ui-slider-bg"></div>' + "</div>";
			this.ele.html(t);
			this.initStatus()
			this.X = this.ele.find(".ui-slider-text").offset().left + this.maxLeft;
			this.Y = this.ele.find(".ui-slider-text").offset().top;
			//console.log("X="+this.X+";Y="+this.Y );
		},
		initStatus: function() {
			var t = this;
			var i = this.ele;
			this.mouseXY = "";
			this.sliderwrap = i.find(".ui-slider-wrap");
			this.sliderBtn = i.find(".ui-slider-btn");
			this.bgColor = i.find(".ui-slider-bg");
			this.sliderText = i.find(".ui-slider-text");
			this.sliderwrap.css({
				width: t.opts.width,
				height: t.opts.height,
				backgroundColor: t.opts.sliderBg
			});
			this.sliderBtn.css({
				width: t.opts.height,
				height: t.opts.height,
				lineHeight: t.opts.height + "px"
			});
			this.bgColor.css({
				height: t.opts.height,
				backgroundColor: t.opts.bgColor

			});
			this.sliderText.css({
				lineHeight: t.opts.height + "px",
				fontSize: t.opts.fontSize,
				color: t.opts.color,
			})
		},
		renderSuccess: function renderSuccess() {
			this.ele.find(".ui-slider-text").text(this.opts.successMsg).css({
				color: this.opts.successColor,
			});
			this.ele.find(".ui-slider-bg").css({
				width: "100%"
			});
			this.ele.find(".ui-slider-wrap .ui-slider-btn").css({
				right: 0
			});
			this.ele.find(".ui-slider-btn").addClass("success");

			this.ele.find(".add-img").removeClass("add-img");
		},
		renderError: function renderError() {
			this.ele.html(this.opts.errorMsg).css({
				"color": this.opts.errorColor,
				"background": this.opts.errorBgColor,
				"width": this.opts.width + "px",
				"height": this.opts.height + "px",
				"line-height": this.opts.height + "px",
				"font-size": this.opts.errorFontSize + "px",
				"text-align": "center",
				"overflow": "hidden"
			});
		},
		restore: function() {
			var t = this;
			var i = t.opts.time;
			this.result = false;
			this.initStatus();
			this.sliderBtn.removeClass("success").animate({
				left: 0
			}, i);
			this.bgColor.animate({
				width: 0
			}, i, function() {
				t.sliderText.text(t.opts.textMsg)
			})
		},
		removeEvent: function() {
			var t = this;
			this.ele.off(startEvent, ".ui-slider-btn");
		},
		eventBind: function() {
			var t = this;
			this.ele.on(startEvent, ".ui-slider-btn", function(i) {
				if(t.result || $(this).hasClass("success")) {
					return
				}
				t.sliderMousedown(i)
			})
		},
		sliderMousedown: function(t) {
			var i = this;
			var s = hasTouch == "wap" ? t.originalEvent.touches[0].clientX : t.clientX;
			var e = s - this.sliderBtn.offset().left + $(window).scrollLeft();
			var s_ = hasTouch == "wap" ? t.originalEvent.touches[0].clientY : t.clientY;
			var e_ = s_ - this.sliderBtn.offset().top + $(window).scrollTop();
			this.mouseXY = "";

			this.mouse_X = s;
			this.mouse_Y = s_;
			this.mouseTime = new Date().valueOf();
			i.sliderMousemove(s, e, s_, e_);
			i.sliderMouseup(s, e, s_, e_)
		},
		sliderMousemove: function(i, e, i_, e_) {
			var l = this;
			var _t = t;
			t(s).on(moveEvent + ".sliderwrap", function(t) {
				t.preventDefault();
				t.stopPropagation();
				l.sliderBtn_left = (hasTouch == "wap" ? t.originalEvent.touches[0].clientX : t.clientX) - i - e;
				l.sliderBtn_top = (hasTouch == "wap" ? t.originalEvent.touches[0].clientY : t.clientY) - i_ - e_;
				if(l.sliderBtn_left < 0) {
					return
				}
				if(l.sliderBtn_left > l.maxLeft) {
					l.sliderBtn_left = l.maxLeft

					/*l.result = true
					_t(this).off(moveEvent+".slider");
					_t(this).off(endEvent+".slider");
					if (l.opts.callback && typeof l.opts.callback === "function") {
					    var data = l.mouseXY += " " + l.X + "," + l.Y;
					    setTimeout(function(){
					        l.opts.callback(l.result,data)
					    },100);                        
					}*/
				} else {
					/*l.mouseXY += t.pageX+",";
					l.mouseXY += t.pageY+",";
					l.mouseXY += new Date().valueOf()+";";*/
				}
				l.sliderBtn.css("left", l.sliderBtn_left);
				l.bgColor.width(l.sliderBtn_left);
				// l.mouseXY += t.pageX+",";
				// l.mouseXY += t.pageY+",";
				l.mouseXY += l.sliderBtn_left + ",";
				l.mouseXY += l.sliderBtn_top + ",";
				l.mouseXY += (new Date().valueOf() - l.mouseTime) + ";";
			})
		},
		sliderMouseup: function(ss, e, ss_, e_) {
			var i = this;
			t(s).on(endEvent + ".sliderwrap", function(tt) {
				if(Math.abs(i.sliderBtn_left - i.maxLeft * 0.7) > 40) {
					i.sliderBtn_left = 0
				} else {
					i.result = true
				}
				myDebug("鼠标抬起");
				i.sliderBtn.animate({
					left: i.sliderBtn_left
				}, i.opts.time);
				i.bgColor.animate({
					width: i.sliderBtn_left
				}, i.opts.time);
				t(this).off(moveEvent + ".sliderwrap");
				t(this).off(endEvent + ".sliderwrap");
				if(i.opts.callback && typeof i.opts.callback === "function") {
					//var data = i.mouseXY += " " + i.X + "," + i.Y;
					var data = i.mouseXY += " " + i.maxLeft * 0.7 + "," + 0;
					//var sliderBtn_left = (hasTouch == "wap" ? tt.originalEvent.changedTouches[0].clientX : tt.clientX)- ss - e;
					//var sliderBtn_top = (hasTouch == "wap" ? tt.originalEvent.changedTouches[0].clientY : tt.clientY)- ss_ - e_;
					//var data = i.mouseXY += " " + sliderBtn_left + "," + sliderBtn_top;
					i.opts.callback(i.result, data)
				}
			})
		}
	};
	t.fn.myslider = function(i, m) {
		return this.each(function() {
			var s = t(this);
			var e = s.data("slider");
			e = new l(s, i);
			s.data("slider", e);
			if(m) {
				e[m]()
			}
		})
	}
})(jQuery, window, document);
// var url = "http://team5-risk-http.dockerdev.lefile.cn/slidecaptcha/analyze.jsonp";
function worker() {
	var that = this;
	this.triggerDivId = "";
	this.error_respcode = 501;
	this.initObj = {};
	this.btnCancel = "";
	this.init = function(obj) {
		//this.opt = $.extend(this.defaults, obj);
		that.btnCancel = obj.btnCancel ? obj.btnCancel : "";
		this.initObj = obj;
		this.initObj.callback = this.slideCallback;
		this.debug = obj.debug;
		this.renderTo = obj.renderTo;
		$(obj.renderTo).myslider(this.initObj);
		that.triggerDivId = this.renderTo;
		that.regEvent();
	};
	this.defaults = {
		success: function() {},
		error: function() {}
	};
	this.regEvent = function() {
		that.regEventCancel();
	}
	this.regEventCancel = function() {
		if(that.btnCancel != "") {
			$(document).delegate(that.btnCancel, "click", function() {
				$(that.triggerDivId).myslider(that.initObj);
			});
		}
	}
	this.slideCallback = function slideCallback(result, data) {
		if(result) {
			var _this = this;
			if(this.debug != undefined) {
				if(this.debug == "success") {
					$(that.triggerDivId).myslider(that.initObj, "renderSuccess");
					_this.success({
						"value": "333",
						"codeid": "111"
					});
				} else {
					$(that.triggerDivId).myslider(that.initObj, "renderError");
					_this.error({
						"value": "11",
						"respcode": "333"
					})
				}
			} else {
				//采集数据验证

				if(document.domain.indexOf('lenovouat') == -1) {
					var url = "https://captcha.lenovo.com.cn/htif/slidecaptcha/analyze.jsonp";
				} else {
					var url = "https://captcha.lenovouat.com/htif/slidecaptcha/analyze.jsonp";
				}
				if(this.url) {
					var url = this.url;
				}
				myDebug("数据采集请求");
				setTimeout(function() {
					if(typeof _this.isSuccess == "undefined" || _this.isSuccess != 1) {
						_this.error({
							"respcode": "接口挂了"
						});
					}
				}, (_this.errorTime || 5000));
				$.ajax({
					type: "GET",
					url: url,
					data: {
						data: encodeURIComponent(encrypt(data))
					},
					dataType: "jsonp",
					success: function(data) {
						_this.isSuccess = 1;
						myDebug("返回信息=" + data.result.respcode);
						if(data.success && data.result.respcode == "0") {
							$(that.triggerDivId).myslider(that.initObj, "renderSuccess");
							_this.success({
								"value": data.result.value,
								"codeid": data.result.codeid
							});
						} else {
							$(that.triggerDivId).myslider(that.initObj, "renderError");
							_this.error({
								"respcode": data.result.respcode
							});
						}
					},
					error: function(XMLHttpRequest, textStatus, errorThrown) {
						myDebug("ajax挂了");
						_this.error({
							"value": "",
							"respcode": that.error_respcode
						})
					}
				});
			}

		}
	};
	this.css = function(obj) {
		Object.assign(that.initObj, obj);
		this.opt = $.extend(this.defaults, that.initObj);
	};

	this.reset = function() {
		$(that.triggerDivId).myslider(that.initObj);
	};

};

//base64 utils
function Base64_2() {

	// private property
	_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

	// public method for encoding
	this.encode = function(input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
		input = _utf8_encode(input);
		while(i < input.length) {
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
			if(isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if(isNaN(chr3)) {
				enc4 = 64;
			}
			output = output +
				_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
				_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
		}
		return output;
	};

	this.decode = function(input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		while(i < input.length) {
			enc1 = _keyStr.indexOf(input.charAt(i++));
			enc2 = _keyStr.indexOf(input.charAt(i++));
			enc3 = _keyStr.indexOf(input.charAt(i++));
			enc4 = _keyStr.indexOf(input.charAt(i++));
			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;
			output = output + String.fromCharCode(chr1);
			if(enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if(enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}
		}
		output = _utf8_decode(output);
		return output;
	};

	// private method for UTF-8 encoding
	_utf8_encode = function(string) {
		string = string.replace(/\r\n/g, "\n");
		var utftext = "";
		for(var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
			if(c < 128) {
				utftext += String.fromCharCode(c);
			} else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			} else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}
		return utftext;
	};

	// private method for UTF-8 decoding
	_utf8_decode = function(utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
		while(i < utftext.length) {
			c = utftext.charCodeAt(i);
			if(c < 128) {
				string += String.fromCharCode(c);
				i++;
			} else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i + 1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			} else {
				c2 = utftext.charCodeAt(i + 1);
				c3 = utftext.charCodeAt(i + 2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
		}
		return string;
	};
};

function encrypt(word) {
	var key = CryptoJS.enc.Utf8.parse("kfv8eur73jf93nf8");
	var srcs = CryptoJS.enc.Utf8.parse(word);
	var encrypted = CryptoJS.AES.encrypt(srcs, key, {
		mode: CryptoJS.mode.ECB,
		padding: CryptoJS.pad.Pkcs7
	});
	return encrypted.toString();
}

function decrypt(word) {
	var key = CryptoJS.enc.Utf8.parse("kfv8eur73jf93nf8");
	var decrypt = CryptoJS.AES.decrypt(word, key, {
		mode: CryptoJS.mode.ECB,
		padding: CryptoJS.pad.Pkcs7
	});
	return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}